﻿using Util.ExtensionMethods;
using LojaVirtual.Geral.Constantes;
using PersistLayer.DAL;
using PersistLayer.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace LojaVirtual.Site.Pages.Loja
{
	public partial class VerProduto : BaseSite
	{
		public Produto p
		{
			get
			{
				try
				{
					if ((Request.QueryString[QUERY_STRING.PRODUTO_ID] == null) || (Request.QueryString[QUERY_STRING.PRODUTO_ID].ToString() == string.Empty))
						return null;

					Int64 id = Convert.ToInt64(Util.Criptografia.Decriptar(CRIPTO.CHAVE, CRIPTO.VETOR, Request.QueryString[QUERY_STRING.PRODUTO_ID].ToString()));

					return new ProdutoDAL().Obter(id);
				}
				catch
				{
					return null;
				}
			}
		}

		protected void Page_Load(object sender, EventArgs e)
		{
			try
			{
				if (p == null)
					throw new ApplicationException("");

				base.PageLoad();
			}
			catch (Exception)
			{
				throw;
			}
		}

		public override void CarregaTexto()
		{
			hTitulo.Style.Add("color", Lj.CorPrincipal);
			hTitulo.Style.Add("border-bottom", "4px solid " + Lj.CorPrincipal);

			resPreco.Text = Resources.Geral.Preco;
			resPrecoComDesconto.Text = Resources.Geral.PrecoComDesconto;

			lblTitulo.Text = p.Nome;
			lblRatingPositivo.Text = "82";
			lblRatingNegativo.Text = "6";
		}

		public override void CarregaDados()
		{
			CarregaImagensProduto();
			CarregaPrecos();
		}

		private void CarregaImagensProduto()
		{
			imgProduto.ImageUrl = ResolveUrl(p.Imagem);

			for (int i = 0; i < p.Produto_Imagens.Count; i++)
			{
				Produto_Imagens pi = p.Produto_Imagens.ToList()[i];
				if (i == 0)
					imgFoto1.ImageUrl = ResolveUrl(pi.Url);
				if (i == 1)
					imgFoto2.ImageUrl = ResolveUrl(pi.Url);
				if (i == 2)
					imgFoto3.ImageUrl = ResolveUrl(pi.Url);
				if (i == 3)
					imgFoto4.ImageUrl = ResolveUrl(pi.Url);
				if (i == 4)
					imgFoto5.ImageUrl = ResolveUrl(pi.Url);
				if (i == 5)
					imgFoto6.ImageUrl = ResolveUrl(pi.Url);
			}
		}

		private void CarregaPrecos()
		{
			lblPreco.Text = Cur.Sigla + " " + (p.Preco * CurrencyConverter("USD")).toMoneyString();

			if (p.Promocao_ID == null)
			{
				trComDesconto.Style.Add("display", "none");
				lblPreco.CssClass = "precoFinal";
				return;
			}

			Produto_Promocao pp = new Produto_Promocao();
			pp = new Produto_PromocaoDAL().Obter((Int64)p.Promocao_ID);

			if ((pp.Data_Ativacao > DateTime.Now) || (pp.Data_Final < DateTime.Now))
			{
				trComDesconto.Style.Add("display", "none");
				lblPreco.CssClass = "precoFinal";
				return;
			}

			lblPrecoComDesconto.Text = Cur.Sigla + " " + CalcularDesconto((p.Preco * CurrencyConverter("USD")), pp.Desconto).toMoneyString();
			lblPrecoComDesconto.CssClass = "precoFinal";
		}

		protected void Fotos_Click(object sender, ImageClickEventArgs e)
		{
			imgProduto.ImageUrl = ((ImageButton)sender).ImageUrl;
		}
	}
}